<?php
namespace app\web\controller;

use think\Db;
use think\Request;
use app\common\controller\commonApi as comm;

/**
 * Class Group
 * @package app\web\controller
 * by J.sky
 * 2020年5月5日
 */
class Group
{
    /**
     * 分组列表
     * @param Request $request
     * by J.sky
     * 2020年5月5日
     */
    public function groupList(Request $request){
        try {
            //获取管理员信息
            $adminInfo = $request->adminInfo;
            $list = Db::name("group")->where("menu","<>","0")->select();
            ret(200, '成功', $list);
        } catch (\Exception $e) {
            comm::oplog("sql错误",$adminInfo['id'],$adminInfo['username'],json_encode(['错误API'=>retMAC(),'error' => $e->getMessage(),'操作用户IP'=>get_ip()]));
            rLog(['operate' => 'sql错误', 'error' => $e->getMessage()]);
            ret(404, '服务器异常请联系管理员');
        }
    }

    /**
     * 添加分组
     * @param Request $request
     * by J.sky
     * 2020年5月5日
     */
    public function groupAdd(Request $request){
        try {
            //获取管理员信息
            $adminInfo = $request->adminInfo;

            $data['name'] = input('post.name', '', 'trim');
            empty($data['name']) ? ret(400, '请输入分组名称！') : '';

            $list = Db::name("group")->where("name",$data['name'])->find();
            !empty($list) ? ret(400, '分组名称已存在！'):'';

            $data['menu'] = input('post.menu', '', 'trim');
            empty($data['menu']) ? ret(400, '请选择分组菜单！') : '';

            $data['home'] = input('post.home', '', 'trim');
            $data['home_id'] = input('post.home_id', '', 'trim');
            empty($data['home']) || empty($data['home_id']) ? ret(400, '请选择登录后跳转首页！') : '';

            $data['desc'] = input('post.desc', '', 'trim');

            $ret = Db::name("group")->save($data,[]);
            $ret ? ret(200, '成功') : ret(400, '修改失败');
        } catch (\Exception $e) {
            comm::oplog("sql错误",$adminInfo['id'],$adminInfo['username'],json_encode(['错误API'=>retMAC(),'error' => $e->getMessage(),'操作用户IP'=>get_ip()]));
            rLog(['operate' => 'sql错误', 'error' => $e->getMessage()]);
            ret(404, '服务器异常请联系管理员');
        }
    }

    /**
     * 修改分组
     * @param Request $request
     * by J.sky
     * 2020年5月5日
     */
    public function groupModify(Request $request){
        try {
            //获取管理员信息
            $adminInfo = $request->adminInfo;

            $id = input('post.id', '', 'trim');
            empty($id) ? ret(400, '请选择需要修改的分组！') : '';

            $data['name'] = input('post.name', '', 'trim');
            empty($data['name']) ? ret(400, '请输入分组名称！') : '';
            $w = [
                ["name",'=',$data['name']],
                ['id','<>',$id]
            ];
            $list = Db::name("group")->where($w)->find();
            !empty($list) ? ret(400, '分组名称已存在！'):'';

            $data['menu'] = input('post.menu', '', 'trim');
            empty($data['menu']) ? ret(400, '请选择分组菜单！') : '';

            $data['home'] = input('post.home', '', 'trim');
            $data['home_id'] = input('post.home_id', '', 'trim');
            empty($data['home']) || empty($data['home_id']) ? ret(400, '请选择登录后跳转首页！') : '';

            $data['desc'] = input('post.desc', '', 'trim');

            $ret = Db::name("group")->where('id', $id)->update($data);
            $ret ? ret(200, '成功！') : ret(400, "数据未改动，无法进行修改！");
        } catch (\Exception $e) {
            comm::oplog("sql错误",$adminInfo['id'],$adminInfo['username'],json_encode(['错误API'=>retMAC(),'error' => $e->getMessage(),'操作用户IP'=>get_ip()]));
            rLog(['operate' => 'sql错误', 'error' => $e->getMessage()]);
            ret(404, '服务器异常请联系管理员');
        }
    }

    /**
     * 删除分组
     * @param Request $request
     * by J.sky
     * 2020年5月5日11:54:05
     */
    public function groupDel(Request $request){
        try {
            //获取管理员信息
            $adminInfo = $request->adminInfo;
            $id = input('post.id', '', 'trim');
            empty($id) ? ret(400, '请选择需要删除的分组！') : '';
            if ( Db::name("group")->where('id', $id)->delete()) {
                comm::oplog("删除分组",$adminInfo['id'],$adminInfo['username'],"删除分组ID:".$id." | 操作用户IP:" .get_ip());
                ret(200, '成功');
            }
            ret(400, '操作失败');
        } catch (\Exception $e) {
            comm::oplog("sql错误",$adminInfo['id'],$adminInfo['username'],json_encode(['错误API'=>retMAC(),'error' => $e->getMessage(),'操作用户IP'=>get_ip()]));
            rLog(['operate' => 'sql错误', 'error' => $e->getMessage()]);
            ret(404, '服务器异常请联系管理员');
        }
    }
}
